home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.006 / xemacs-1 / lib / xemacs-19.13 / lisp / hyperbole / smart-clib-sym < prev    next >
Encoding:
Text File  |  1995-08-26  |  1.9 KB  |  64 lines

  1. #!/bin/csh -f
  2. #
  3. # SUMMARY:      Test whether symbol appears within a set of C libraries.
  4. # USAGE:        <script-name> <symbol-string>
  5. #
  6. # AUTHOR:       Bob Weiner
  7. # ORG:          Brown U.
  8. #
  9. # ORIG-DATE:     5-Oct-91 at 03:29:05
  10. # LAST-MOD:     25-Aug-95 at 02:23:17 by Bob Weiner
  11. #
  12. # This file is part of Hyperbole.
  13. # Available for use and distribution under the same terms as GNU Emacs.
  14. #
  15. # Copyright (C) 1991-1995, Free Software Foundation, Inc.
  16. # Developed with support from Motorola Inc.
  17. #
  18. # DESCRIPTION:  
  19. #
  20. #   Create the file given by the variable 'clib_list' below, and place in that
  21. #   file the full path for each C, C++ or Objective-C library that you want
  22. #   scanned for symbol names.  One filename per line.  Do not quote the
  23. #   filenames.
  24. #
  25. #   Handles exact name matches only.  Echos and exits with same output value.
  26. #   Either 1 if symbol is found or 0 if not.
  27. #
  28. # DESCRIP-END.
  29.  
  30. # Perl script used to tell whether one file is newer than another.
  31. #
  32. set fn = "file-newer"
  33.  
  34. # Create this file and place in the file the full path for each C, C++ or
  35. # Objective-C library that you want scanned for symbol names.  One filename
  36. # per line.  Do not quote the filenames.
  37. #
  38. set clib_list = "~/.CLIBS-LIST"
  39.  
  40.  
  41. # This file will automatically be created to cache the symbol names.
  42. # Remove it if you ever want to rebuild the symbol table.
  43. #
  44. set clib_symbols = "~/.clibs-symbols"
  45.  
  46. # Try to locate 'perl' and 'file-newer' script for use.
  47.  
  48. which perl >& /dev/null
  49. if ($status) unset fn
  50.  
  51. set st = 0 rebuild = 0
  52. if (-e $clib_list) then
  53.    if (! -e $clib_symbols || -z $clib_symbols) set rebuild = 1
  54.    if (! $rebuild  && $?fn) @ rebuild = `perl $fn $clib_list $clib_symbols`
  55.    if ($rebuild) then
  56.       nm -g `cat $clib_list` | grep '^[0-9 ].* _[A-Za-z]' | sed -e 's/^[^_][^_]*_//g' | sort | uniq > $clib_symbols
  57.    endif
  58.    fgrep -sx $1 $clib_symbols >& /dev/null
  59.    @ st = ! $status
  60. endif
  61.  
  62. echo $st
  63. exit $st
  64.